#pragma once
#include <stdio.h>
#include "creature.h"

/*自然类，调用生物类和事件类，存储狼、羊、草和事件的指针数组
 * 大致时序为开始，展现界面，输入总时间-》创建生物并运行-》到时间后总结和输入事件
 */
struct Num
{
	int wolf;
	int sheep;
	int grass;
	int events;
	int all;
};

class Events;
class Creature;

class Nature
{
public:
	/*生物和事件的指针数组，创建新对象后分配指针*/
	Events *events[1001];
	int temp_events = 1; /*游标，表示当前events的位置*/
	Creature *livings[100001];

	Creature *wolf[1001];
	Creature *sheep[1001];
	Creature *grass[1001];

	Num num = {0, 0, 0, 0};		/*对象的总数量*/
	Num num_end = {0, 0, 0, 0}; /*最后存活的对象的总数量*/
	int time = 0;
	int time_past = 0; /*经过的时间,用于生物年龄计算和总*/

	void function();										 /*进行不同的功能选择*/
	void start();											 /*开始时的界面，先只输入总时间，之后可作为功能选择界面*/
	void create(int num_wolf, int num_sheep, int num_grass); /*创建生物，先只做预设数量如狼5羊20草50，输入数量和信息的创建之后加*/
	void turns();											 /*运行环节，回合制跑圈，先狼后羊再草*/
	void result();											 /*运行总结，输出场上存活的对象和发生的事件*/
	// void clear(Creature& c);/*检查对象生存状态，死亡则清理*/

	void stillalive();	  /*遍历生物数组累计还有谁活着*/
	void choose_result(); /*选择模式输出*/
};
